807. 保持城市天际线
https://leetcode-cn.com/problems/max-increase-to-keep-city-skyline/
- 提交时间:2021-12-13 15:33:46
- 执行用时:4 ms, 在所有 Go 提交中击败了94.12%的用户
- 内存消耗:3.4 MB, 在所有 Go 提交中击败了58.82%的用户
- 通过测试用例:133 / 133
func maxIncreaseKeepingSkyline(grid [][]int) (ans int) {
maxHeight := make([][]int, 2)
maxHeight[0], maxHeight[1] = make([]int, len(grid[0])), make([]int, len(grid))
for y, rows := range grid {
maxTmp := 0
for x, height := range rows {
maxTmp = max(maxTmp, height)
maxHeight[0][x] = max(maxHeight[0][x], height)
}
maxHeight[1][y] = maxTmp
}
for y, rows := range grid {
for x, height := range rows {
minHeight := min(maxHeight[0][x], maxHeight[1][y])
ans += minHeight - height
}
}
return
}
func max(x, y int) int {
if x > y {
return x
}
return y
}
func min(x, y int) int {
if x < y {
return x
}
return y
}